package com.example.bluejumplib.utils;

import java.lang.reflect.Field;

import felhr.usbservice.UsbService;

public class JavaUtils {
    // 通过属性获取传入对象的指定属性的值
    public static <T,OBJ> T getValueByPropName(OBJ obj, String propName, Boolean accessible) {
        T value = null;
        try {
//            Class cs=Class.forName(clazzName);
            // 通过属性获取对象的属性
            //.getDeclaredFields() 获得某个类的所有声明的字段，即包括public、private和proteced但不包括父类申明字段
            //.getClass() 是⼀个对象实例的⽅法，只有对象实例才有这个⽅法，具体的类是没有的
            Field field = obj.getClass().getDeclaredField(propName);
            // 对象的属性的访问权限设置为可访问
            //允许获取实体类private的参数信息
            if (accessible)
                field.setAccessible(true);
            // 获取属性的对应的值
            value = (T) field.get(obj);
        } catch (Exception e) {
            return null;
        }
        return value;
    }
}
